/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						 stationary_adventure_object.h

	$Header: /heroes4/stationary_adventure_object.h $

	$NoKeywords: $

 ************************************************************************/

#if !defined( STATIONARY_ADVENTURE_OBJECT_H_INCLUDED )
#define STATIONARY_ADVENTURE_OBJECT_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <string>

#include "abstract_stationary_adv_object.h"
#include "adventure_object.h"

class t_qualified_adv_object_type;

#pragma warning( push )
#pragma warning( disable: 4250 ) // Disable the "inherits via domininance" warning

// -------------------------------------------------------------------------------
// t_stationary_adventure_object class
// -------------------------------------------------------------------------------

class t_stationary_adventure_object : public t_abstract_stationary_adv_object, 
									  public t_adventure_object
{
public:
	typedef t_stationary_adventure_object          t_object;

	// Constructor
	t_stationary_adventure_object( std::string const&  model_name );

	// Member functions
	t_screen_point                      get_dialog_bottom( t_level_map_point_2d const& point ) const;
	virtual t_icon_type					get_icon_type() const;
	int									get_major_subtype() const;
	int									get_minor_subtype() const;
	t_qualified_adv_object_type const&  get_model_type() const;
	virtual std::string					get_name() const;
	virtual int							get_subimage_depth_offset( int subimage_num ) const;
	std::string                         get_text( std::string const& keyword ) const;
	t_qualified_adv_object_type const&	get_type() const;
	virtual bool						read( std::streambuf&					 stream, 
											  t_qualified_adv_object_type const& type,
											  int								 version );
	virtual bool						is_bridge() const;
	virtual bool						is_deleted_by_deletion_marker() const;
	virtual bool						is_ramp() const;
	virtual void						right_click( t_mouse_event const& event,
		                                             t_adventure_frame* adventure_frame );
	virtual bool					    write( std::streambuf& buffer ) const;
	virtual bool					    write_object( std::streambuf& buffer ) const;
};

inline t_stationary_adventure_object::t_stationary_adventure_object( std::string const & model_name )
									: t_abstract_stationary_adv_object( model_name )
{
}

#pragma warning( pop )

#endif // !defined( STATIONARY_ADVENTURE_OBJECT_H_INCLUDED )
